/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controle;

import Modelo.Cliente;
import Modelo.Fisico;
import Modelo.Juridico;
import Modelo.Pessoa;
import java.util.Comparator;

/**
 *
 * @author silvio
 */
class ComparadorDeClientes implements Comparator<Cliente> {

             
       
      public int verifica(Pessoa p1, Pessoa p2){
          if (p1.getNome().charAt(0) < p2.getNome().charAt(0)) return -1;  
         else if (p1.getNome().charAt(0) > p2.getNome().charAt(0)) return +1;  
         else return 0;  
      }

    @Override
    public int compare(Cliente c1, Cliente c2) {
       Juridico j,j1;
            Fisico f,f1;
           if((c1 instanceof Juridico) && ( c2 instanceof Juridico)){
                j = (Juridico) c1;
                j1 = (Juridico)c2;
                if (j.getPessoa().getNome().charAt(0) > j1.getPessoa().getNome().charAt(0))
                   return verifica(j.getPessoa(),j1.getPessoa());
            }else if((c1 instanceof Juridico) && ( c2 instanceof Fisico)){
                 j = (Juridico) c1;
                 f = (Fisico) c2;
                 if (j.getPessoa().getNome().charAt(0) > f.getPessoa().getNome().charAt(0))
                 return verifica(j.getPessoa(),f.getPessoa());
            }else if((c1 instanceof Fisico) && ( c2 instanceof Juridico)){
                j = (Juridico) c2;
                f = (Fisico) c1;
                if(f.getPessoa().getNome().charAt(0)>j.getPessoa().getNome().charAt(0))
                   return  verifica(f.getPessoa(),j.getPessoa());
            }else if((c1 instanceof Fisico) && (c2 instanceof Fisico)){
                f = (Fisico) c1;
                f1 = (Fisico)c2;
                if(f.getPessoa().getNome().charAt(0)> f1.getPessoa().getNome().charAt(0))
                   return verifica(f.getPessoa(),f1.getPessoa());
            }
           return 0;
    }
}
	
    
